package main

import (
	"bytes"
	"github.com/gin-gonic/gin"
	"io/ioutil"
	"net/http"
)

func main(){
	r := gin.Default()
	r.Static("/assets", "./assets")
	r.StaticFS("/static", http.Dir("static"))
	//r.StaticFile("/favicon.ico", "./favicon.ico")
	//r.GET("ping", func(c *gin.Context){
	//	c.String(200, "Get")
	//})
	//
	//// 匹配 路由中的 name id 获取值
	//r.GET("/user/:name/:id", func(c *gin.Context) {
	//	c.JSON(200, gin.H{
	//		"name": c.Param("name"),
	//		"id": c.Param("id"),
	//	})
	//})
	//
	//// studen?name=123&age=18
	//r.GET("/student", func(c *gin.Context) {
	//	name := c.Query("name")
	//	age:= c.DefaultQuery("age", "18")
	//	c.String(200, "%s,%s", name, age)
	//})
	//
	//// 获取body的功能演示
	//r.POST("/test", func(c *gin.Context) {
	//	bodyByte, err := ioutil.ReadAll(c.Request.Body)
	//	if err != nil {
	//		c.String(http.StatusBadRequest, err.Error())
	//		c.Abort()
	//	}
	//	c.String(http.StatusOK, string(bodyByte))
	//})
	//
	//// ioutil.ReadAll(c.Request.Body) 后 获取不到 ?key=value 解决
	r.POST("/test", func(c *gin.Context) {
		bodyByte, err := ioutil.ReadAll(c.Request.Body)
		if err != nil {
			c.String(http.StatusBadRequest, err.Error())
			c.Abort()
		}
		c.Request.Body = ioutil.NopCloser(bytes.NewBuffer(bodyByte))
		name := c.PostForm("name")
		age:= c.DefaultPostForm("age", "18")
		c.String(http.StatusOK, "%s, %s, %s", name, age, string(bodyByte))
	})
	r.Run()
}